   This file documents the XEmacs editor.

   Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
1991, 1992, 1993, 1994 Lucid, Inc.  Copyright (C) 1993, 1994 Sun
Microsystems, Inc.  Copyright (C) 1995 Amdahl Corporation.

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided also
that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
General Public License" are included exactly as in the original, and
provided that the entire resulting derived work is distributed under the
terms of a permission notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that the sections entitled "The GNU Manifesto",
"Distribution" and "GNU General Public License" may be included in a
translation approved by the author instead of in the original English.

Reporting Bugs
==============

   Sometimes you will encounter a bug in Emacs.  Although we cannot
promise we can or will fix the bug, and we might not even agree that it
is a bug, we want to hear about bugs you encounter in case we do want
to fix them.

   To make it possible for us to fix a bug, you must report it.  In
order to do so effectively, you must know when and how to do it.

When Is There a Bug
-------------------

   If Emacs executes an illegal instruction, or dies with an operating
system error message that indicates a problem in the program (as
opposed to something like "disk full"), then it is certainly a bug.

   If Emacs updates the display in a way that does not correspond to
what is in the buffer, then it is certainly a bug.  If a command seems
to do the wrong thing but the problem corrects itself if you type
`C-l', it is a case of incorrect display updating.

   Taking forever to complete a command can be a bug, but you must make
certain that it was really Emacs's fault.  Some commands simply take a
long time.  Type `C-g' and then `C-h l' to see whether the input Emacs
received was what you intended to type; if the input was such that you
KNOW it should have been processed quickly, report a bug.  If you don't
know whether the command should take a long time, find out by looking
in the manual or by asking for assistance.

   If a command you are familiar with causes an Emacs error message in a
case where its usual definition ought to be reasonable, it is probably a
bug.

   If a command does the wrong thing, that is a bug.  But be sure you
know for certain what it ought to have done.  If you aren't familiar
with the command, or don't know for certain how the command is supposed
to work, then it might actually be working right.  Rather than jumping
to conclusions, show the problem to someone who knows for certain.

   Finally, a command's intended definition may not be best for editing
with.  This is a very important sort of problem, but it is also a
matter of judgment.  Also, it is easy to come to such a conclusion out
of ignorance of some of the existing features.  It is probably best not
to complain about such a problem until you have checked the
documentation in the usual ways, feel confident that you understand it,
and know for certain that what you want is not available.  If you are
not sure what the command is supposed to do after a careful reading of
the manual, check the index and glossary for any terms that may be
unclear.  If you still do not understand, this indicates a bug in the
manual.  The manual's job is to make everything clear.  It is just as
important to report documentation bugs as program bugs.

   If the online documentation string of a function or variable
disagrees with the manual, one of them must be wrong, so report the bug.

How to Report a Bug
-------------------

   When you decide that there is a bug, it is important to report it
and to report it in a way which is useful.  What is most useful is an
exact description of what commands you type, starting with the shell
command to run Emacs, until the problem happens.  Always include the
version number of Emacs that you are using; type `M-x emacs-version' to
print this.

   The most important principle in reporting a bug is to report FACTS,
not hypotheses or categorizations.  It is always easier to report the
facts, but people seem to prefer to strain to posit explanations and
report them instead.  If the explanations are based on guesses about
how Emacs is implemented, they will be useless; we will have to try to
figure out what the facts must have been to lead to such speculations.
Sometimes this is impossible.  But in any case, it is unnecessary work
for us.

   For example, suppose that you type `C-x C-f /glorp/baz.ugh <RET>',
visiting a file which (you know) happens to be rather large, and Emacs
prints out `I feel pretty today'.  The best way to report the bug is
with a sentence like the preceding one, because it gives all the facts
and nothing but the facts.

   Do not assume that the problem is due to the size of the file and
say, "When I visit a large file, Emacs prints out `I feel pretty
today'."  This is what we mean by "guessing explanations".  The problem
is just as likely to be due to the fact that there is a `z' in the file
name.  If this is so, then when we got your report, we would try out
the problem with some "large file", probably with no `z' in its name,
and not find anything wrong.  There is no way in the world that we
could guess that we should try visiting a file with a `z' in its name.

   Alternatively, the problem might be due to the fact that the file
starts with exactly 25 spaces.  For this reason, you should make sure
that you inform us of the exact contents of any file that is needed to
reproduce the bug.  What if the problem only occurs when you have typed
the `C-x a l' command previously?  This is why we ask you to give the
exact sequence of characters you typed since starting to use Emacs.

   You should not even say "visit a file" instead of `C-x C-f' unless
you know that it makes no difference which visiting command is used.
Similarly, rather than saying "if I have three characters on the line,"
say "after I type `<RET> A B C <RET> C-p'," if that is the way you
entered the text.

   If you are not in Fundamental mode when the problem occurs, you
should say what mode you are in.

   If the manifestation of the bug is an Emacs error message, it is
important to report not just the text of the error message but a
backtrace showing how the Lisp program in Emacs arrived at the error.
To make the backtrace, you must execute the Lisp expression `(setq
debug-on-error t)' before the error happens (that is to say, you must
execute that expression and then make the bug happen).  This causes the
Lisp debugger to run (see Lisp Debug.).  The debugger's backtrace
can be copied as text into the bug report.  This use of the debugger is
possible only if you know how to make the bug happen again.  Do note
the error message the first time the bug happens, so if you can't make
it happen again, you can report at least that.

   Check whether any programs you have loaded into the Lisp world,
including your `.emacs' file, set any variables that may affect the
functioning of Emacs.  Also, see whether the problem happens in a
freshly started Emacs without loading your `.emacs' file (start Emacs
with the `-q' switch to prevent loading the init file).  If the problem
does NOT occur then, it is essential that we know the contents of any
programs that you must load into the Lisp world in order to cause the
problem to occur.

   If the problem does depend on an init file or other Lisp programs
that are not part of the standard Emacs system, then you should make
sure it is not a bug in those programs by complaining to their
maintainers first.  After they verify that they are using Emacs in a
way that is supposed to work, they should report the bug.

   If you can tell us a way to cause the problem without visiting any
files, please do so.  This makes it much easier to debug.  If you do
need files, make sure you arrange for us to see their exact contents.
For example, it can often matter whether there are spaces at the ends
of lines, or a newline after the last line in the buffer (nothing ought
to care whether the last line is terminated, but tell that to the bugs).

   The easy way to record the input to Emacs precisely is to write a
dribble file; execute the Lisp expression:

     (open-dribble-file "~/dribble")

using `Meta-<ESC>' or from the `*scratch*' buffer just after starting
Emacs.  From then on, all Emacs input will be written in the specified
dribble file until the Emacs process is killed.

   For possible display bugs, it is important to report the terminal
type (the value of environment variable `TERM'), the complete termcap
entry for the terminal from `/etc/termcap' (since that file is not
identical on all machines), and the output that Emacs actually sent to
the terminal.  The way to collect this output is to execute the Lisp
expression:

     (open-termscript "~/termscript")

using `Meta-<ESC>' or from the `*scratch*' buffer just after starting
Emacs.  From then on, all output from Emacs to the terminal will be
written in the specified termscript file as well, until the Emacs
process is killed.  If the problem happens when Emacs starts up, put
this expression into your `.emacs' file so that the termscript file will
be open when Emacs displays the screen for the first time.  Be warned:
it is often difficult, and sometimes impossible, to fix a
terminal-dependent bug without access to a terminal of the type that
stimulates the bug.

   The newsgroup `comp.emacs.xemacs' may be used for bug reports, other
discussions and requests for assistance.

   If you don't have access to this newgroup, you can subscribe to the
mailing list version: the newsgroup is bidirectionally gatewayed into
the mailing list `xemacs@xemacs.org'.

   To be added or removed from this mailing list, send mail to
`xemacs-request@xemacs.org'.  Do not send requests for addition to the
mailing list itself.

   The mailing lists and newsgroups are archived on our anonymous FTP
server, `ftp.xemacs.org', and at various other archive sites around the
net. You should also check the `FAQ' in `/pub/xemacs' on our anonymous
FTP server. It provides some introductory information and help for
initial configuration problems.

Glossary
********

Abbrev
     An abbrev is a text string which expands into a different text
     string when present in the buffer.  For example, you might define
     a short word as an abbrev for a long phrase that you want to insert
     frequently.  See Abbrevs.

Aborting
     Aborting means getting out of a recursive edit (q.v.).  You can use
     the commands `C-]' and `M-x top-level' for this.  See Quitting.

Auto Fill mode
     Auto Fill mode is a minor mode in which text you insert is
     automatically broken into lines of fixed width.  See Filling.

Auto Saving
     Auto saving means that Emacs automatically stores the contents of
     an Emacs buffer in a specially-named file so the information will
     not be lost if the buffer is lost due to a system error or user
     error.  See Auto Save.

Backup File
     A backup file records the contents that a file had before the
     current editing session.  Emacs creates backup files automatically
     to help you track down or cancel changes you later regret.  See
     Backup.

Balance Parentheses
     Emacs can balance parentheses manually or automatically.  Manual
     balancing is done by the commands to move over balanced expressions
     (see Lists.).  Automatic balancing is done by blinking the
     parenthesis that matches one just inserted (see Matching Parens).

Bind
     To bind a key is to change its binding (q.v.).  See Rebinding.

Binding
     A key gets its meaning in Emacs by having a binding which is a
     command (q.v.), a Lisp function that is run when the key is typed.
     See Binding.  Customization often involves rebinding a
     character to a different command function.  The bindings of all
     keys are recorded in the keymaps (q.v.).  See Keymaps.

Blank Lines
     Blank lines are lines that contain only whitespace.  Emacs has
     several commands for operating on the blank lines in a buffer.

Buffer
     The buffer is the basic editing unit; one buffer corresponds to one
     piece of text being edited.  You can have several buffers, but at
     any time you are editing only one, the `selected' buffer, though
     several buffers can be visible when you are using multiple
     windows.  See Buffers.

Buffer Selection History
     Emacs keeps a buffer selection history which records how recently
     each Emacs buffer was selected.  Emacs uses this list when
     choosing a buffer to select.  See Buffers.

C-
     `C' in the name of a character is an abbreviation for Control.
     See C-.

C-M-
     `C-M-' in the name of a character is an abbreviation for
     Control-Meta.  See C-M-.

Case Conversion
     Case conversion means changing text from upper case to lower case
     or vice versa.  See Case, for the commands for case conversion.

Characters
     Characters form the contents of an Emacs buffer; also, Emacs
     commands are invoked by keys (q.v.), which are sequences of one or
     more characters.  See Keystrokes.

Command
     A command is a Lisp function specially defined to be able to serve
     as a key binding in Emacs.  When you type a key (q.v.), Emacs
     looks up its binding (q.v.) in the relevant keymaps (q.v.) to find
     the command to run.  See Commands.

Command Name
     A command name is the name of a Lisp symbol which is a command
     (see Commands.).  You can invoke any command by its name using
     `M-x' (see M-x.).

Comments
     A comment is text in a program which is intended only for the
     people reading the program, and is marked specially so that it
     will be ignored when the program is loaded or compiled.  Emacs
     offers special commands for creating, aligning, and killing
     comments.  See Comments.

Compilation
     Compilation is the process of creating an executable program from
     source code.  Emacs has commands for compiling files of Emacs Lisp
     code (see Lisp Libraries.) and programs in C and other
     languages (see Compilation.).

Complete Key
     A complete key is a character or sequence of characters which,
     when typed by the user, fully specifies one action to be performed
     by Emacs.  For example, `X' and `Control-f' and `Control-x m' are
     keys.  Keys derive their meanings from being bound (q.v.) to
     commands (q.v.).  Thus, `X' is conventionally bound to a command
     to insert `X' in the buffer; `C-x m' is conventionally bound to a
     command to begin composing a mail message. See Keystrokes.

Completion
     When Emacs automatically fills an abbreviation for a name into the
     entire name, that process is called completion.  Completion is
     done for minibuffer (q.v.) arguments when the set of possible
     valid inputs is known; for example, on command names, buffer
     names, and file names.  Completion occurs when you type <TAB>,
     <SPC>, or <RET>.  See Completion.

Continuation Line
     When a line of text is longer than the width of the frame, it
     takes up more than one screen line when displayed.  We say that the
     text line is continued, and all screen lines used for it after the
     first are called continuation lines.  See Continuation.

Control-Character
     ASCII characters with octal codes 0 through 037, and also code
     0177, do not have graphic images assigned to them.  These are the
     control characters.  Any control character can be typed by holding
     down the <CTRL> key and typing some other character; some have
     special keys on the keyboard.  <RET>, <TAB>, <ESC>, <LFD>, and
     <DEL> are all control characters.  See Keystrokes.

Copyleft
     A copyleft is a notice giving the public legal permission to
     redistribute a program or other work of art.  Copylefts are used
     by leftists to enrich the public just as copyrights are used by
     rightists to gain power over the public.

Current Buffer
     The current buffer in Emacs is the Emacs buffer on which most
     editing commands operate.  You can select any Emacs buffer as the
     current one.  See Buffers.

Current Line
     The line point is on (see Point.).

Current Paragraph
     The paragraph that point is in.  If point is between paragraphs,
     the current paragraph is the one that follows point.  See
     Paragraphs.

Current Defun
     The defun (q.v.) that point is in.  If point is between defuns, the
     current defun is the one that follows point.  See Defuns.

Cursor
     The cursor is the rectangle on the screen which indicates the
     position called point (q.v.) at which insertion and deletion takes
     place.  The cursor is on or under the character that follows
     point.  Often people speak of `the cursor' when, strictly
     speaking, they mean `point'.  See Cursor.

Customization
     Customization is making minor changes in the way Emacs works.  It
     is often done by setting variables (see Variables.) or by
     rebinding keys (see Keymaps.).

Default Argument
     The default for an argument is the value that is used if you do not
     specify one.  When Emacs prompts you in the minibuffer for an
     argument, the default argument is used if you just type <RET>.
     See Minibuffer.

Default Directory
     When you specify a file name that does not start with `/' or `~',
     it is interpreted relative to the current buffer's default
     directory.  See Default Directory.

Defun
     A defun is a list at the top level of parenthesis or bracket
     structure in a program.  It is so named because most such lists in
     Lisp programs are calls to the Lisp function `defun'.  See
     Defuns.

<DEL>
     The <DEL> character runs the command that deletes one character of
     text.  See DEL.

Deletion
     Deleting text means erasing it without saving it.  Emacs deletes
     text only when it is expected not to be worth saving (all
     whitespace, or only one character).  The alternative is killing
     (q.v.).  See Deletion.

Deletion of Files
     Deleting a file means removing it from the file system.  See
     Misc File Ops.

Deletion of Messages
     Deleting a message means flagging it to be eliminated from your
     mail file.  Until the mail file is expunged, you can undo this by
     undeleting the message.

Deletion of Frames
     When working under the multi-frame X-based version of XEmacs, you
     can delete individual frames using the Close menu item from the
     File menu.

Deletion of Windows
     When you delete a subwindow of an Emacs frame, you eliminate it
     from the frame.  Other windows expand to use up the space.  The
     deleted window can never come back, but no actual text is lost.
     See Windows.

Directory
     Files in the Unix file system are grouped into file directories.
     See Directories.

Dired
     Dired is the Emacs facility that displays the contents of a file
     directory and allows you to "edit the directory", performing
     operations on the files in the directory.  See Dired.

Disabled Command
     A disabled command is one that you may not run without special
     confirmation.  Commands are usually disabled because they are
     confusing for beginning users.  See Disabling.

Dribble File
     A file into which Emacs writes all the characters that the user
     types on the keyboard.  Dribble files are used to make a record for
     debugging Emacs bugs.  Emacs does not make a dribble file unless
     you tell it to.  See Bugs.

Echo Area
     The area at the bottom of the Emacs frame which is used for
     echoing the arguments to commands, for asking questions, and for
     printing brief messages (including error messages).  See Echo Area.

Echoing
     Echoing refers to acknowledging the receipt of commands by
     displaying them (in the echo area).  Emacs never echoes
     single-character keys; longer keys echo only if you pause while
     typing them.

Error
     An error occurs when an Emacs command cannot execute in the current
     circumstances.  When an error occurs, execution of the command
     stops (unless the command has been programmed to do otherwise) and
     Emacs reports the error by printing an error message (q.v.).
     Type-ahead is discarded.  Then Emacs is ready to read another
     editing command.

Error Messages
     Error messages are single lines of output printed by Emacs when the
     user asks for something impossible to do (such as killing text
     forward when point is at the end of the buffer).  They appear in
     the echo area, accompanied by a beep.

<ESC>
     <ESC> is a character used as a prefix for typing Meta characters on
     keyboards lacking a <META> key.  Unlike the <META> key (which,
     like the <SHIFT> key, is held down while another character is
     typed), the <ESC> key is pressed and released, and applies to the
     next character typed.

Fill Prefix
     The fill prefix is a string that Emacs enters at the beginning of
     each line when it performs filling.  It is not regarded as part of
     the text to be filled.  See Filling.

Filling
     Filling text means moving text from line to line so that all the
     lines are approximately the same length.  See Filling.

Frame
     When running Emacs on a TTY terminal, "frame" means the terminal's
     screen.  When running Emacs under X, you can have multiple frames,
     each corresponding to a top-level X window and each looking like
     the screen on a TTY.  Each frame contains one or more
     non-overlapping Emacs windows (possibly with associated
     scrollbars, under X), an echo area, and (under X) possibly a
     menubar.

Global
     Global means `independent of the current environment; in effect
     throughout Emacs'.  It is the opposite of local (q.v.).  Examples
     of the use of `global' appear below.

Global Abbrev
     A global definition of an abbrev (q.v.) is effective in all major
     modes that do not have local (q.v.) definitions for the same
     abbrev.  See Abbrevs.

Global Keymap
     The global keymap (q.v.) contains key bindings that are in effect
     unless local key bindings in a major mode's local keymap (q.v.)
     override them.See Keymaps.

Global Substitution
     Global substitution means replacing each occurrence of one string
     by another string through a large amount of text.  See Replace.

Global Variable
     The global value of a variable (q.v.) takes effect in all buffers
     that do not have their own local (q.v.) values for the variable.
     See Variables.

Graphic Character
     Graphic characters are those assigned pictorial images rather than
     just names.  All the non-Meta (q.v.) characters except for the
     Control (q.v.) character are graphic characters.  These include
     letters, digits, punctuation, and spaces; they do not include
     <RET> or <ESC>.  In Emacs, typing a graphic character inserts that
     character (in ordinary editing modes).  See Basic Editing.

Grinding
     Grinding means adjusting the indentation in a program to fit the
     nesting structure.  See Grinding.

Hardcopy
     Hardcopy means printed output.  Emacs has commands for making
     printed listings of text in Emacs buffers.  See Hardcopy.

<HELP>
     You can type <HELP> at any time to ask what options you have, or
     to ask what any command does.  <HELP> is really `Control-h'.
     See Help.

Inbox
     An inbox is a file in which mail is delivered by the operating
     system.  Some mail handlers transfers mail from inboxes to mail
     files (q.v.) in which the mail is then stored permanently or until
     explicitly deleted.

Indentation
     Indentation means blank space at the beginning of a line.  Most
     programming languages have conventions for using indentation to
     illuminate the structure of the program, and Emacs has special
     features to help you set up the correct indentation.  See
     Indentation.

Insertion
     Insertion means copying text into the buffer, either from the
     keyboard or from some other place in Emacs.

Justification
     Justification means adding extra spaces to lines of text to make
     them come exactly to a specified width.  See Justification.

Keyboard Macros
     Keyboard macros are a way of defining new Emacs commands from
     sequences of existing ones, with no need to write a Lisp program.
     See Keyboard Macros.

Key
     A key is a sequence of characters that, when input to Emacs,
     specify or begin to specify a single action for Emacs to perform.
     That is, the sequence is considered a single unit.  If the key is
     enough to specify one action, it is a complete key (q.v.); if it
     is less than enough, it is a prefix key (q.v.).  See
     Keystrokes.

Keymap
     The keymap is the data structure that records the bindings (q.v.)
     of keys to the commands that they run.  For example, the keymap
     binds the character `C-n' to the command function `next-line'.
     See Keymaps.

Kill Ring
     The kill ring is the place where all text you have killed recently
     is saved.  You can re-insert any of the killed text still in the
     ring; this is called yanking (q.v.).  See Yanking.

Killing
     Killing means erasing text and saving it on the kill ring so it
     can be yanked (q.v.) later.  Some other systems call this
     "cutting."  Most Emacs commands to erase text do killing, as
     opposed to deletion (q.v.).  See Killing.

Killing Jobs
     Killing a job (such as, an invocation of Emacs) means making it
     cease to exist.  Any data within it, if not saved in a file, is
     lost.  See Exiting.

List
     A list is, approximately, a text string beginning with an open
     parenthesis and ending with the matching close parenthesis.  In C
     mode and other non-Lisp modes, groupings surrounded by other kinds
     of matched delimiters appropriate to the language, such as braces,
     are also considered lists.  Emacs has special commands for many
     operations on lists.  See Lists.

Local
     Local means `in effect only in a particular context'; the relevant
     kind of context is a particular function execution, a particular
     buffer, or a particular major mode.  Local is the opposite of
     `global' (q.v.).  Specific uses of `local' in Emacs terminology
     appear below.

Local Abbrev
     A local abbrev definition is effective only if a particular major
     mode is selected.  In that major mode, it overrides any global
     definition for the same abbrev.  See Abbrevs.

Local Keymap
     A local keymap is used in a particular major mode; the key bindings
     (q.v.) in the current local keymap override global bindings of the
     same keys.  See Keymaps.

Local Variable
     A local value of a variable (q.v.) applies to only one buffer.
     See Locals.

M-
     `M-' in the name of a character is an abbreviation for <META>, one
     of the modifier keys that can accompany any character.  See
     Keystrokes.

M-C-
     `M-C-' in the name of a character is an abbreviation for
     Control-Meta; it means the same thing as `C-M-'.  If your terminal
     lacks a real <META> key, you type a Control-Meta character by
     typing <ESC> and then typing the corresponding Control character.
     See C-M-.

M-x
     `M-x' is the key which is used to call an Emacs command by name.
     You use it to call commands that are not bound to keys.  See
     M-x.

Mail
     Mail means messages sent from one user to another through the
     computer system, to be read at the recipient's convenience.  Emacs
     has commands for composing and sending mail, and for reading and
     editing the mail you have received.  See Sending Mail.

Major Mode
     The major modes are a mutually exclusive set of options each of
     which configures Emacs for editing a certain sort of text.
     Ideally, each programming language has its own major mode.  See
     Major Modes.

Mark
     The mark points to a position in the text.  It specifies one end
     of the region (q.v.), point being the other end.  Many commands
     operate on the whole region, that is, all the text from point to
     the mark.  See Mark.

Mark Ring
     The mark ring is used to hold several recent previous locations of
     the mark, just in case you want to move back to them.  See Mark Ring.

Message
     See `mail'.

Meta
     Meta is the name of a modifier bit which a command character may
     have.  It is present in a character if the character is typed with
     the <META> key held down.  Such characters are given names that
     start with `Meta-'.  For example, `Meta-<' is typed by holding down
     <META> and at the same time typing `<' (which itself is done, on
     most terminals, by holding down <SHIFT> and typing `,').  See
     Meta.

Meta Character
     A Meta character is one whose character code includes the Meta bit.

Minibuffer
     The minibuffer is the window that Emacs displays inside the echo
     area (q.v.) when it prompts you for arguments to commands.  See
     Minibuffer.

Minor Mode
     A minor mode is an optional feature of Emacs which can be switched
     on or off independent of the major mode.  Each minor mode has a
     command to turn it on or off.  See Minor Modes.

Mode Line
     The mode line is the line at the bottom of each text window (q.v.),
     which gives status information on the buffer displayed in that
     window.  See Mode Line.

Modified Buffer
     A buffer (q.v.) is modified if its text has been changed since the
     last time the buffer was saved (or since it was created, if it has
     never been saved).  See Saving.

Moving Text
     Moving text means erasing it from one place and inserting it in
     another.  This is done by killing (q.v.) and then yanking (q.v.).
     See Killing.

Named Mark
     A named mark is a register (q.v.) in its role of recording a
     location in text so that you can move point to that location.
     See Registers.

Narrowing
     Narrowing means creating a restriction (q.v.) that limits editing
     in the current buffer to only a part of the text in the buffer.
     Text outside that part is inaccessible to the user until the
     boundaries are widened again, but it is still there, and saving
     the file saves the invisible text.  See Narrowing.

Newline
     <LFD> characters in the buffer terminate lines of text and are
     called newlines.  See Newline.

Numeric Argument
     A numeric argument is a number, specified before a command, to
     change the effect of the command.  Often the numeric argument
     serves as a repeat count.  See Arguments.

Option
     An option is a variable (q.v.) that allows you to customize Emacs
     by giving it a new value.  See Variables.

Overwrite Mode
     Overwrite mode is a minor mode.  When it is enabled, ordinary text
     characters replace the existing text after point rather than
     pushing it to the right.  See Minor Modes.

Page
     A page is a unit of text, delimited by formfeed characters (ASCII
     Control-L, code 014) coming at the beginning of a line.  Some Emacs
     commands are provided for moving over and operating on pages.
     See Pages.

Paragraphs
     Paragraphs are the medium-size unit of English text.  There are
     special Emacs commands for moving over and operating on paragraphs.
     See Paragraphs.

Parsing
     We say that Emacs parses words or expressions in the text being
     edited.  Really, all it knows how to do is find the other end of a
     word or expression.  See Syntax.

Point
     Point is the place in the buffer at which insertion and deletion
     occur.  Point is considered to be between two characters, not at
     one character.  The terminal's cursor (q.v.) indicates the
     location of point.  See Point.

Prefix Key
     A prefix key is a key (q.v.) whose sole function is to introduce a
     set of multi-character keys.  `Control-x' is an example of a prefix
     key; any two-character sequence starting with `C-x' is also a
     legitimate key.  See Keystrokes.

Prompt
     A prompt is text printed to ask the user for input.  Printing a
     prompt is called prompting.  Emacs prompts always appear in the
     echo area (q.v.).  One kind of prompting happens when the
     minibuffer is used to read an argument (see Minibuffer.); the
     echoing which happens when you pause in the middle of typing a
     multi-character key is also a kind of prompting (see Echo Area.).

Quitting
     Quitting means cancelling a partially typed command or a running
     command, using `C-g'.  See Quitting.

Quoting
     Quoting means depriving a character of its usual special
     significance.  In Emacs this is usually done with `Control-q'.
     What constitutes special significance depends on the context and
     on convention.  For example, an "ordinary" character as an Emacs
     command inserts itself; so in this context, a special character is
     any character that does not normally insert itself (such as <DEL>,
     for example), and quoting it makes it insert itself as if it were
     not special.  Not all contexts allow quoting.  See Quoting.

Read-only Buffer
     A read-only buffer is one whose text you are not allowed to change.
     Normally Emacs makes buffers read-only when they contain text which
     has a special significance to Emacs, such asDired buffers.
     Visiting a file that is write-protected also makes a read-only
     buffer.  See Buffers.

Recursive Editing Level
     A recursive editing level is a state in which part of the
     execution of a command involves asking the user to edit some text.
     This text may or may not be the same as the text to which the
     command was applied.  The mode line indicates recursive editing
     levels with square brackets (`[' and `]').  See Recursive Edit.

Redisplay
     Redisplay is the process of correcting the image on the screen to
     correspond to changes that have been made in the text being edited.
     See Redisplay.

Regexp
     See `regular expression'.

Region
     The region is the text between point (q.v.) and the mark (q.v.).
     Many commands operate on the text of the region.  See Region.

Registers
     Registers are named slots in which text or buffer positions or
     rectangles can be saved for later use.  See Registers.

Regular Expression
     A regular expression is a pattern that can match various text
     strings; for example, `l[0-9]+' matches `l' followed by one or more
     digits.  See Regexps.

Replacement
     See `global substitution'.

Restriction
     A buffer's restriction is the amount of text, at the beginning or
     the end of the buffer, that is temporarily invisible and
     inaccessible.  Giving a buffer a nonzero amount of restriction is
     called narrowing (q.v.).  See Narrowing.

<RET>
     <RET> is the character than runs the command to insert a newline
     into the text.  It is also used to terminate most arguments read
     in the minibuffer (q.v.).  See Return.

Saving
     Saving a buffer means copying its text into the file that was
     visited (q.v.) in that buffer.  To actually change a file you have
     edited in Emacs, you have to save it.  See Saving.

Scrolling
     Scrolling means shifting the text in the Emacs window to make a
     different part ot the buffer visible.  See Scrolling.

Searching
     Searching means moving point to the next occurrence of a specified
     string.  See Search.

Selecting
     Selecting a buffer means making it the current (q.v.) buffer.
     See Selecting.

Self-documentation
     Self-documentation is the feature of Emacs which can tell you what
     any command does, or can give you a list of all commands related
     to a topic you specify.  You ask for self-documentation with the
     help character, `C-h'.  See Help.

Sentences
     Emacs has commands for moving by or killing by sentences.  See
     Sentences.

Sexp
     An sexp (short for `s-expression,' itself short for `symbolic
     expression') is the basic syntactic unit of Lisp in its textual
     form: either a list, or Lisp atom.  Many Emacs commands operate on
     sexps.  The term `sexp' is generalized to languages other than
     Lisp to mean a syntactically recognizable expression.  See
     Sexps.

Simultaneous Editing
     Simultaneous editing means two users modifying the same file at
     once.  If simultaneous editing is not detected, you may lose your
     work.  Emacs detects all cases of simultaneous editing and warns
     the user to investigate them.  See Simultaneous Editing.

String
     A string is a kind of Lisp data object which contains a sequence of
     characters.  Many Emacs variables are intended to have strings as
     values.  The Lisp syntax for a string consists of the characters in
     the string with a `"' before and another `"' after. Write a `"'
     that is part of the string as `\"' and a `\' that is part of the
     string as `\\'.  You can include all other characters, including
     newline, just by writing them inside the string. You can also
     include escape sequences as in C, such as `\n' for newline or
     `\241' using an octal character code.

String Substitution
     See `global substitution'.

Syntax Table
     The syntax table tells Emacs which characters are part of a word,
     which characters balance each other like parentheses, etc.  See
     Syntax.

Tag Table
     A tag table is a file that serves as an index to the function
     definitions in one or more other files.  See Tags.

Termscript File
     A termscript file contains a record of all characters Emacs sent to
     the terminal.  It is used for tracking down bugs in Emacs
     redisplay.  Emacs does not make a termscript file unless
     explicitly instructed to do so.  See Bugs.

Text
     Text has two meanings (see Text.):

        * Data consisting of a sequence of characters, as opposed to
          binary numbers, images, graphics commands, executable
          programs, and the like.  The contents of an Emacs buffer are
          always text in this sense.

        * Data consisting of written human language, as opposed to
          programs, or something that follows the stylistic conventions
          of human language.

Top Level
     Top level is the normal state of Emacs, in which you are editing
     the text of the file you have visited.  You are at top level
     whenever you are not in a recursive editing level (q.v.) or the
     minibuffer (q.v.), and not in the middle of a command.  You can
     get back to top level by aborting (q.v.) and quitting (q.v.).
     See Quitting.

Transposition
     Transposing two units of text means putting each one into the place
     formerly occupied by the other.  There are Emacs commands to
     transpose two adjacent characters, words, sexps (q.v.), or lines
     (see Transpose.).

Truncation
     Truncating text lines in the display means leaving out any text on
     a line that does not fit within the right margin of the window
     displaying it.  See also `continuation line'.  See Truncation.

Undoing
     Undoing means making your previous editing go in reverse, bringing
     back the text that existed earlier in the editing session.  See
     Undo.

Variable
     A variable is Lisp object that can store an arbitrary value.
     Emacs uses some variables for internal purposes, and has others
     (known as `options' (q.v.)) you can set to control the behavior of
     Emacs.  The variables used in Emacs that you are likely to be
     interested in are listed in the Variables Index of this manual.
     See Variables, for information on variables.

Visiting
     Visiting a file means loading its contents into a buffer (q.v.)
     where they can be edited.  See Visiting.

Whitespace
     Whitespace is any run of consecutive formatting characters (spaces,
     tabs, newlines, and backspaces).

Widening
     Widening is removing any restriction (q.v.) on the current buffer;
     it is the opposite of narrowing (q.v.).  See Narrowing.

Window
     Emacs divides the frame into one or more windows, each of which can
     display the contents of one buffer (q.v.) at any time.  See
     Frame, for basic information on how Emacs uses the frame.  See
     Windows, for commands to control the use of windows. Note that if
     you are running Emacs under X, terminology can be confusing: Each
     Emacs frame occupies a separate X window and can, in turn, be
     divided into different subwindows.

Word Abbrev
     Synonymous with `abbrev'.

Word Search
     Word search is searching for a sequence of words, considering the
     punctuation between them as insignificant.  See Word Search.

Yanking
     Yanking means reinserting text previously killed.  It can be used
     to undo a mistaken kill, or for copying or moving text.  Some other
     systems call this "pasting".  See Yanking.